본문으로 건너뛰기

콜스택과 힙

콜스택

함수를 호출하면 함수 실행 컨텍스트가 순처적으로 콜스택에 푸시되어 실행된다. 자바스크립트 엔진은 단 하나의 콜스택을 사용하기 때문에 최상위 실행 컨텍스트(실행 중인 실행 컨텍스트)가 종료되어 콜 스택에서 제거되기 전까지는 다른 어떤 태스크도 실행되지 않는다.

힙은 객체가 저장되는 메모리 공간이다. 콜 스택의 요소인 실행 컨텍스트는 힙에 저장된 객체를 참조한다. 메모리에 값을 저장하려면 먼저 값을 저장할 메모리 공간의 크기를 결정해야한다.

객체는 원시값과는 달리 크기가 정해져 있지 않으므로 할당해야할 메모리 공간의 크기를 런타임에 결정(동적 할당)해야한다. 따라서 객체가 저장되는 메모리 공간인 힙은 구조화되어 있지 않다는 특징이 있다.